/**
 * date:2023/05/29
 * author:tongchao.liu
 * version:1.0
 * description: 上传插件扩展
 */
layui.define(["element", "jquery"], function (exports) {
    var element = layui.element,
        $ = layui.$,
        // miniAdmin = layui.miniAdmin,
        layer = layui.layer;


    var CmfUpload = {
		
		//初始化渲染数据
		render_data:[],
		/**
         * 添加要渲染的图片url
         * @param options  id ：string html容器id ,type string 上传类型（once,more）
         */
		addUrl:function(render_data){
			if(typeof render_data == "string" && render_data != ""){
				CmfUpload.render_data.push(render_data);
			}
		},
        /**
         * 初始化 upload
         * @param options  id ：string html容器id ,type string 上传类型（once,more）
         */
        render: function (options) {
			//option: {id:"img_upload",type:"once"}
			if(!options || !options.id || !options.type) return false;
			var id_name =  options.id
			var upload_type =  options.type
            console.log(options);
			
			var html = '<div><div class="layui-btn" greenbeecmf-upload="'+upload_type+'"><i class="fa fa-cloud-upload "></i> &nbsp;文件上传</div><img src=""/></div>';
			$(document).find("#"+id_name).html(html)
            CmfUpload.listen(options);
			
			//初始化渲染数据
			var render_datas = CmfUpload.render_data
			if(render_datas.length >0){
				for(var p in render_datas){
					//alert(render_datas[p])
					CmfUpload.renderResponse(options,render_datas[p])
					if(upload_type == "once") break;
				}
			}
            
        },
		 /**
         * 渲染 response
         * @param options
         */
		renderResponse: function (options,file_name) {
			var html = "";
			if(!options || !options.id || !options.type) return false;
			var id_name =  options.id
			var type =  options.type
			
			//模式 once 单个上传
			if(type == "once"){
				$(document).find("#"+id_name).find(".img_box").remove();
				html += '<div class="img_box" style="float:left;padding:20px 30px 20px 0;width:200px;"><img width="200px" src="'+file_name+'"/><p class="cmf_upload_del_pic" style="text-align:center;padding:5px 5px;background:#F2F2F2;cursor:pointer;"><span style="color:red;" >删除</span></p><input type="hidden" name="'+id_name+'" value="'+file_name+'"></div>';
		
			}else{
				//多个上传
				html += '<div class="img_box" style="float:left;padding:20px 30px 20px 0;width:200px;"><img width="200px" src="'+file_name+'"/><p class="cmf_upload_del_pic" style="text-align:center;padding:5px 5px;background:#F2F2F2;cursor:pointer;"><span style="color:red;" >删除</span></p><input type="hidden" name="'+id_name+'[]" value="'+file_name+'"></div>';
		
			}
            $(document).find("#"+id_name).append(html)
			
            //CmfUpload.listen(options);
            
        },

        /**
         * 监听
         * @param options
         */
        listen: function (options) {
			if(!options || !options.id || !options.type) return false;
			var id_name =  options.id
			var upload_type =  options.type
		
            /**
             * 打开新窗口上传
             */
           $('body').on('click', '[greenbeecmf-upload]', function (e) {  
				var loading = parent.layer.load(0, {shade: false, time: 2 * 1000});  
				var num = $(this).attr('greenbeecmf-upload')  
				if(!num) return  ; 
				//防止重复绑定click
				var locked = $(this).attr("locked")
				if(locked =="lock"){
					
					$(this).off('click').on('click', function (e) {  
						layer.open({  
							type: 2,  //基本层类型：0（信息框，默认）1（页面层）2（iframe层，也就是解析content）3（加载层）4（tips层）  
							title: ['文件上传', 'font-size:18px; color:orange;'],//数组第二项可以写任意css样式；如果你不想显示标题栏，你可以title: false  
							content: "page/upload.html?id="+id_name+"&types="+upload_type,  
							area:['800px', '530px']  
						});  
						
					});  
					
				}else{
					$(this).off('click').on('click', function (e) {  
						layer.open({  
							type: 2,  //基本层类型：0（信息框，默认）1（页面层）2（iframe层，也就是解析content）3（加载层）4（tips层）  
							title: ['文件上传', 'font-size:18px; color:orange;'],//数组第二项可以写任意css样式；如果你不想显示标题栏，你可以title: false  
							content: "page/upload.html?id="+id_name+"&types="+upload_type,  
							area:['800px', '530px']  
						});  
						
					});  
					layer.open({  
							type: 2,  //基本层类型：0（信息框，默认）1（页面层）2（iframe层，也就是解析content）3（加载层）4（tips层）  
							title: ['文件上传', 'font-size:18px; color:orange;'],//数组第二项可以写任意css样式；如果你不想显示标题栏，你可以title: false  
							content: "page/upload.html?id="+id_name+"&types="+upload_type,  
							area:['800px', '530px']  
						});  
				}
				$(this).attr("locked","lock")
				parent.layer.close(loading);  
			});

            /**
             * 绑定 图片删除事件
             */
            $('body').on('click', '.cmf_upload_del_pic', function () {
               $(this).parent().remove();
            });

        },


    };

    exports("CmfUpload", CmfUpload);
});
